

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

/**
 * Classe de gestion de l'application CAF. Contient le main de l'application.
 * @author IUT
 * @version 2.0 *
 */
public class Application {

	/* Constructeur de l'application. 
	 * Instancie un objet caf et puis les objets sérialisés dans un fichier texte.
	 * Lance le menu principal qui permet à l'utilisateur de réaliser ses traitements.
	 * Lorsque l'utilisateur ressort du menu, sérialise les objets de l'application dans un fichier texte */
	
public Application() {
		
	// Creation de l'instance du club
	Caf club = new Caf();
	String nomfich = "Fsauve.txt";

	// Restauration des objets de l'application
	try {
		FileInputStream fichier = new FileInputStream(nomfich);
		ObjectInputStream in = new ObjectInputStream(fichier);
		club = (Caf) in.readObject();
		EntreesSorties.afficherMessage(" $$$ Restauration du fichier " + nomfich + " realisée");
	} catch (Exception e) {
		EntreesSorties.afficherMessage(" *** Start : Pbs de Restauration / fichier " + nomfich + " ou fichier inexistant");			}
		
	// Creation de l'instance menu de menuCaf
	MenuCAF menu = new MenuCAF(club);
	// Appel au Menu Principal
	menu.menuPrincipal();
		
	// Sauvegarde des objets de l'application en fin d'exÈcution du menu
	try {
		FileOutputStream f = new FileOutputStream(nomfich);
		ObjectOutputStream out = new ObjectOutputStream(f);
		out.writeObject(club);
		EntreesSorties.afficherMessage(" $$$ Sauvegarde dans le fichier " + nomfich + " realisee");
	} catch (Exception e) {
		EntreesSorties.afficherMessage(" *** Start :Pbs de Sauvegarde dans le fichier " + nomfich);
		}
} // Fin Constructeur

// Programme principal
	public static void main(String args[]) {
		new Application();
	} // Fin main
} // Fin Classe Application

